The Background section of this document is provided to place embodiments of the disclosed technology in technological and operational context to assist those of skill in the art in understanding their scope and utility. Unless explicitly identified as such, no statement herein is admitted to be prior art merely by its inclusion in the Background section.
Databases are employed in various demanding applications, including search engines, corporate billing applications, customer relationship management, and so on. Such applications demand versatile databases and accompanying mechanisms that can quickly access, insert, and modify data (called input/output or I/O operations) in the databases with minimal use of computing resources. For the purposes of the present discussion, a database may be any collection of data stored in a computing system in digital form. As database sizes increase, increased emphasis is placed on efficient database design to minimize an amount of some computing resources (e.g., processor time, memory, etc.) required to perform I/O operations.
To reduce the time to access data in a database, indexes are utilized. However, the speed with which a database creates one or more indexes for the data stored within the database is very slow. Further, the database indexes are not updated in real-time and those available for a recently stored data are likely to be inconsistent with the stored data. For example, when a user stores a photo in the database and the index associated with the stored photo is not updated in real-time, any search query for the photos of the user that utilizes the index will provide an out-of-date list of photos of the user.
In addition, the database indexes must often be maintained using extensive resource every time data is updated or modified. This process can often result in indexes not being updated properly, leading to out-of-sync (i.e., inconsistent) indexes that do not fully index the data stored within the database. In the present art, such out-of-sync indexes are only fixed when the indexes are completely rebuilt. There are no known means to fix such inconsistent indexes in real-time without requiring a complete rebuild of the indexes.
The headings provided herein are for convenience only and do not necessarily affect the scope or meaning of the claimed embodiments. Further, The drawings have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be expanded or reduced to help improve the understanding of the embodiments. Similarly, some components and/or operations may be separated into different blocks or combined into a single block for the purposes of discussion of some of the embodiments. Moreover, while the various embodiments are amenable to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and are described in detail below. The intention, however, is not to limit the particular embodiments described. On the contrary, the embodiments are intended to cover all modifications, equivalents, and alternatives falling within the scope of the disclosed embodiments as defined by the appended claims.